@echo off
echo === RocketMQ 快速修复脚本 ===
echo 正在修复连接问题...

REM 1. 停止现有服务
echo 1. 停止现有服务...
docker-compose down

REM 2. 清理网络
echo 2. 清理Docker网络...
docker network prune -f

REM 3. 清理日志
echo 3. 清理日志目录...
if exist logs rmdir /s /q logs

REM 4. 验证配置文件
echo 4. 验证配置文件...
findstr "192.168.211.139" broker.conf >nul
if %errorlevel% equ 0 (
    echo ✓ broker.conf 配置正确
) else (
    echo ✗ broker.conf 配置错误，请检查IP地址
    pause
    exit /b 1
)

REM 5. 重新启动服务
echo 5. 重新启动服务...
docker-compose up -d

REM 6. 等待服务启动
echo 6. 等待服务启动...
timeout /t 15 /nobreak > nul

REM 7. 检查服务状态
echo 7. 检查服务状态...
docker-compose ps

REM 8. 检查关键日志
echo 8. 检查关键日志...
echo --- NameServer 日志 ---
docker logs rmqnamesrv --tail 10 | findstr /i "start error exception"

echo --- Broker 日志 ---
docker logs rmqbroker --tail 10 | findstr /i "start error exception"

REM 9. 测试连接
echo 9. 测试网络连接...
echo 测试端口 9876 (NameServer)...
powershell -Command "Test-NetConnection -ComputerName 192.168.211.139 -Port 9876 -InformationLevel Quiet"
if %errorlevel% equ 0 (
    echo ✓ NameServer 端口可访问
) else (
    echo ✗ NameServer 端口不可访问
)

echo 测试端口 10911 (Broker)...
powershell -Command "Test-NetConnection -ComputerName 192.168.211.139 -Port 10911 -InformationLevel Quiet"
if %errorlevel% equ 0 (
    echo ✓ Broker 端口可访问
) else (
    echo ✗ Broker 端口不可访问
)

echo.
echo === 修复完成 ===
echo 如果仍有问题，请检查：
echo 1. 防火墙设置
echo 2. 网络配置
echo 3. 查看详细日志：docker logs rmqbroker
echo 4. 查看详细日志：docker logs rmqnamesrv

pause

